package com.example.interfaces.dto;

import com.example.infrastructure.excel.ExcelExportable;
import com.example.infrastructure.excel.ExcelImportable;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.*;

/**
 * 系统配置表 DTO
 *
 * @author wangal
 * @since 2025-07-25
 */
@Data
@Schema(name = "SystemConfigsDTO", description = "系统配置表DTO")
public class SystemConfigsDTO implements ExcelExportable, ExcelImportable {

    @Schema(description = "配置键")
    @ExcelProperty("配置键")
    @NotBlank(message = "配置键不能为空")
    private String configKey;
    
    @Schema(description = "配置值")
    @ExcelProperty("配置值")
    @NotBlank(message = "配置值不能为空")
    private String configValue;
    
    @Schema(description = "配置描述")
    @ExcelProperty("配置描述")
    @NotBlank(message = "配置描述不能为空")
    private String configDesc;
    
    @Schema(description = "配置类型：string,number,boolean,json")
    @ExcelProperty("配置类型：string,number,boolean,json")
    @NotBlank(message = "配置类型：string,number,boolean,json不能为空")
    private String configType;
    
    @Schema(description = "是否系统配置：0否，1是")
    @ExcelProperty("是否系统配置：0否，1是")
    private Byte isSystem;
    
    @Schema(description = "租户编号")
    @ExcelProperty("租户编号")
    @NotNull(message = "租户编号不能为空")
    private Long tenantId;
    
}
